#ifndef JASS_TYPE_VISITOR_H
#define JASS_TYPE_VISITOR_H

namespace Ast
{
namespace Visitor
{

class PrimitiveJassType;
class ArrayJassType;
class HandleJassType;

class JassTypeVisitor {
public:
    virtual std::any accept(PrimitiveJassType* primitiveType) = 0;

    virtual std::any accept(ArrayJassType* arrayType) = 0;

    virtual std::any accept(HandleJassType* type) = 0;
};

}
}

#endif // JASS_TYPE_VISITOR_H
